The invention relates to a method and a device for analyzing control programs for electronic data processing systems.
A determination of whether a user program or, in the next-lower program level in a data processing system, its control program has taken a predetermined course is mostly affected by means of coverage measurings supported on strict instruction/branch recordings of the actual program course. Carriage measurings of the instruction paths and switch-overs of program status words (PSW's), as well as switch-overs due to compulsory interruptions due to asynchronous processes (Traps) have formerly been implemented by means of program flow trace methods which, however, are on the one hand limited by the storage capacity of the trace unit, and on the other highly time-consuming in the finding of the instruction paths executed, since the program recordings have always to be compared with complex program models.
Program tests as they are implemented today require a high amount of system time for executing the necessary and available test programs and system control programs. Problems found during these testing activities are recorded, resolved and re-verified through specific testruns.
However, this approach has three major disadvantages:
1. The coverage of all test programs and system control programs (SCP) (system in the meaning of data processing system) is not known with respect to functional specification or machine architecture (Black Box Aspect).
2. The coverage of all test programs and system control programs is not known, either, with respect to the microcode coverage (White Box Aspect).
3. The buffer storage for recording the program flow (trace buffer) is of a limited capacity only and therefore has to be re-loaded into another (background) storage, with gaps resulting in the recording of the program flow, and cover measurings being consequently executable on a static basis only.
The consequence of these above disadvantages is that prior to the actual test period the test coordinator responsible for a new data processing system to be tested is compelled to collect all test programs available worldwide, and to run them on the test machine. As specified above, this is necessary only because the coverage of the respective program is not known, and because for reliability reasons as many test programs as possible have to be run.
If field problems are reported it usually shows that an error could not be located previously because the test programs available did not cover the defective function. The corresponding test program will subsequently be improved by this function, but it still remains unknown how many other functions are as yet uncovered. This actual state of affairs is unsatisfactory, particularly with respect to those uses which demand a very high availability of a data processing system.